<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class funcionario_model extends CI_Model{
	
	private $tabela = 'funcionarios';
	private $pkTabela = 'id_funcionario';
	private $tabelaTelefone = 'funcionarios_telefones';
	private $pkTabelaTelefone = 'id_func_telefone';
	private $tabelaConta = 'funcionarios_conta';
	private $pkTabelaConta = 'id_func_conta';
	
	public function __construct(){
		parent::__construct();
	}

	public function inserir($dados = NULL) {
		$this->db->insert($this->tabela, $dados);
		return $this->db->affected_rows();
	}
	
	public function deletar($id = NULL) {
		$this->db->where($this->pkTabela, $id);
		$this->db->delete($this->tabela);
		return $this->db->affected_rows();
	}
	
	public function buscarPorId($id = NULL, $tipo = NULL) {
		if(mb_strtolower($tipo) == 'completa'){
			$this->db->select('*');
			$this->db->from($this->tabela);
			$this->db->join('funcionarios_conta','funcionarios.id_funcionario = funcionarios_conta.id_funcionario','left');
			$this->db->where('funcionarios.id_funcionario', $id);
			$query = $this->db->get();
		}else{
			$this->db->where($this->pkTabela, $id);
			$query = $this->db->get($this->tabela);
		}
		
		return $query->row(0);
	}
	
	public function buscarTodos() {
		$query = $this->db->get($this->tabela);
		return $query->result();
	}
	
	public function alterar($id = null, $dados = array()){
		$this->db->where($this->pkTabela, $id);
		$this->db->update($this->tabela, $dados);
		return $this->db->affected_rows();
	}
	
	public function adicionarTelefone($dados = array()){
		$this->db->insert($this->tabelaTelefone, $dados);
		return $this->db->affected_rows();
	}
	
	public function deletarTelefone($id = null){
		$this->db->where($this->pkTabelaTelefone, $id);
		$this->db->delete($this->tabelaTelefone);
		return $this->db->affected_rows();
	}
	
	public function buscarTelefone($id = null){
		$this->db->where($this->pkTabela, $id);
		$query = $this->db->get($this->tabelaTelefone);
		return $query->result();
	}
	
	public function criarConta($dados = array()){
		$this->db->insert($this->tabelaConta, $dados);
		return $this->db->affected_rows();
	}
		
	public function buscarConta($id = null){
		$this->db->where('id_funcionario', $id);
		$query = $this->db->get($this->tabelaConta);
		return $query->row(0);
	}

	public function excluirConta($id = null){
		$this->db->where($this->pkTabelaConta, $id);
		$this->db->delete($this->tabelaConta);
		return $this->db->affected_rows();
	}
	
}